package cn.bonoon.kernel.web.controllers;

/**
 * <pre>
 * 参数{@link GridButtonResolver#key key}用于访问权限的控制
 * 
 * 定义在grid列表上的toolbar按钮
 * 
 * 可以通过{@link #setFunctionBody(String)}添加按钮的部分处理操作
 * </pre>
 * @author jackson
 *
 * @see StatusButtonResolver
 */
public class GridToolbarResolver extends AbstractGridResolver{

	public GridToolbarResolver(String gridId) {
		super(gridId);
	}

	/**
	 * 提交操作的列表选择情况的前提条件
	 */
	private GridSelectedType selectedType = GridSelectedType.NULL;
	
	
	public GridToolbarResolver selectedType(GridSelectedType selectedType) {
		this.selectedType = selectedType;
		return this;
	}
	
	public GridSelectedType getSelectedType() {
		return selectedType;
	}
	
	/**
	 * <pre>
	 * 向按钮添加部分自定义的操作js代码，规则有：
	 * 定义的js上的函数内部字段有：
	 * 1.当前grid列表的id值："__grid"
	 * 2.该按钮需要向控制器发送的数据："__data"
	 * 
	 * 如果{@link #getSelectedType()}的值为
	 * 	a) {@link GridSelectedType#NULL}时"__data"字段为空对象，没有字段
	 * 	b) {@link GridSelectedType#MULTIPLE}时"__data"的字段为：ids(即:__data.ids)为数组
	 * 	c) {@link GridSelectedType#SINGLE}时"__data"的字段为：id(即:__data.id)单个值
	 * </pre>
	 * @param functionBody
	 */
	public void setFunctionBody(String functionBody){
		this.functionBody = functionBody;
	}
}

